package com.ruoyi.walmart.mapper.auth;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.AuthBrand;
import com.ruoyi.walmart.domain.auth.ShopAuth;
import com.ruoyi.walmart.domain.shipments.ShipmentStock;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface ShopAuthMapper extends BaseMapper<ShopAuth> {

    /**
     * 添加授权信息
     * @param shopAuth 条件
     * @return 结果
     */
    int shopAuthInsert(ShopAuth shopAuth);

    /**
     * 查询所以授权记录
     * @return 结果
     */
    List<ShopAuth> selectAllList(ShopAuth shopAuth);

    /**
     * 删除店铺授权记录
     * @param authId 根据id删除
     * @return 结果
     */
    int deleteByAuthIdInt(@Param("authId") Long authId);

    /**
     * 判断是否在数据库里面是否已经存在了这条密钥
     * @param shopAuth 条件
     * @return 结果
     */
    int countByAuth(ShopAuth shopAuth);

    /**
     * 重新授权店铺
     * @param shopAuth 条件
     * @return 结果
     */
    int updateShopAuth(ShopAuth shopAuth);

    /**
     * 查询授权店铺
     * @param authId 通过id来查询
     * @return 结果
     */
    ShopAuth selectByAuthId(@Param("authId") Long authId);

    /**
     * 查询品牌
     * @param authBrand
     * @return
     */
    List<AuthBrand> selectAuthBrand(AuthBrand authBrand);

    /**
     * 添加品牌
     * @param authBrand
     * @return
     */
    int authBrandInsert(AuthBrand authBrand);

    /**
     * 详情页
     * @param authBrandId
     * @return
     */
    AuthBrand selectByAuthBrandId(Long authBrandId);

    /**
     * 修改品牌
     * @param authBrand
     * @return
     */
    int updateAuthBrand(AuthBrand authBrand);

    /**
     * 删除品牌
     * @param authBrandId
     * @return
     */
    int updateByAuthBrandId(Long authBrandId);


    /**
     * 根据父id修改对应的子品牌名称
     * @return
     */
    int updateAuthBrandByParentId(@Param("parentId") Long parentId,@Param("brandName") String brandName);

    /**
     * 查询该品牌名称是否存在
     * @param brandName
     * @return
     */
    int selectCount(@Param("brandName") String brandName);

    /**
     * 根据父品牌id删除对应的子品牌
     * @param authBrandId
     * @return
     */
    int deleteByAuthParentId(@Param("authBrandId") Long authBrandId);

    /**
     * 根据品牌id查询是否存在
     * @param authBrandId
     * @return
     */
    int selectCountByAuthBrand(@Param("authBrandId") Long authBrandId);
    /**
     * 根据店铺名称查询店铺信息
     * @param shopName
     * @return
     */
    ShopAuth selectShopAuthByShopName(@Param("shopName")String shopName);
}
